//package com.example.shiwu;
//
//import android.content.Context;
//import android.graphics.BitmapFactory;
//import android.os.Bundle;
//import android.os.Handler;
//import android.os.Message;
//import android.widget.ImageView;
//
//import androidx.appcompat.app.AppCompatActivity;
//
//import java.io.ByteArrayOutputStream;
//import java.io.IOException;
//import java.io.ObjectOutputStream;
//
//import com.chaquo.python.Python;
//import com.chaquo.python.PyObject;
//import com.chaquo.python.android.AndroidPlatform;
//
//import org.json.JSONArray;
//import org.json.JSONException;
//
//
//public class HeadActivity extends AppCompatActivity implements Runnable {
//    private Context myContext;
//    private ImageView img;
//    private Python py;
//    private PyObject pyobj;
//
//    public final int MSG_SUCCESS = 1;
//
//    private Handler mHandler = new Handler() {
//        public void handleMessage(Message msg) {
//            switch (msg.what) {
//                case MSG_SUCCESS:
//                    img.setImageBitmap(BitmapFactory.decodeByteArray((byte[]) msg.obj, 0, ((byte[]) msg.obj).length));
//                    break;
//            }
//        }
//    };
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_head);
//        myContext = this;
//        img = findViewById(R.id.imageViews);
//
//        try {
//            initPython(myContext, img);
//        } catch (InterruptedException e) {
//            throw new RuntimeException(e);
//        } catch (JSONException e) {
//            throw new RuntimeException(e);
//        }
//
//    }
//
//    private void initPython(Context myContext, ImageView img) throws JSONException, InterruptedException {
//        //初始化python环境
//        if (!Python.isStarted()) {
//            Python.start(new AndroidPlatform(myContext));
//        }
//
//        py = Python.getInstance();
//        //调用hello_python.py里面的plot函式
////        PyObject pyobj = py.getModule("plot");
////
////        byte[] bytesData = pyobj.callAttr("plot","5 6 7 8", "1 2 1 4").toJava(byte[].class);
////        img.setImageBitmap(BitmapFactory.decodeByteArray(bytesData, 0, bytesData.length));
////        System.out.println("画图成功");
//        //byte[] bytesData = pyobj.callAttr("plot").toJava(byte[].class);
//
//        PyObject pyobj = py.getModule("plotmy");
//
//        byte[] bytesData = pyobj.callAttr("plotmy").toJava(byte[].class);
//        img.setImageBitmap(BitmapFactory.decodeByteArray(bytesData, 0, bytesData.length));
//        //String IPValues = "[{'TXA': 0.0, 'TXB': 20.0, 'RXM': 40.0, 'RXN': 60.0, 'X': 30.0, 'Z': 20.0, 'n': 1.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 376.99111843077515},{'TXA': 0.0, 'TXB': 20.0, 'RXM': 60.0, 'RXN': 80.0, 'X': 40.0, 'Z': 30.0, 'n': 2.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 1507.9644737231006}, {'TXA': 0.0, 'TXB': 20.0, 'RXM': 80.0, 'RXN': 100.0, 'X': 50.0, 'Z': 40.0, 'n': 3.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 3769.9111843077517}, {'TXA': 0.0, 'TXB': 20.0, 'RXM': 100.0, 'RXN': 120.0, 'X': 60.0, 'Z': 50.0, 'n': 4.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 7539.822368615503}, {'TXA': 0.0, 'TXB': 20.0, 'RXM': 120.0, 'RXN': 140.0, 'X': 70.0, 'Z': 60.0, 'n': 5.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 13194.689145077129},  {'TXA': 0.0, 'TXB': 20.0, 'RXM': 140.0, 'RXN': 160.0, 'X': 80.0, 'Z': 70.0, 'n': 6.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 21111.50263212341},  {'TXA': 0.0, 'TXB': 20.0, 'RXM': 160.0, 'RXN': 180.0, 'X': 90.0, 'Z': 80.0, 'n': 7.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 31667.253948185116},  {'TXA': 0.0, 'TXB': 20.0, 'RXM': 180.0, 'RXN': 200.0, 'X': 100.0, 'Z': 90.0, 'n': 8.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 45238.93421169302}, {'TXA': 0.0, 'TXB': 20.0, 'RXM': 200.0, 'RXN': 220.0, 'X': 110.0, 'Z': 100.0, 'n': 9.0,'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 62203.534541077905}, {'TXA': 0.0, 'TXB': 20.0, 'RXM': 220.0, 'RXN': 240.0, 'X': 120.0, 'Z': 110.0, 'n': 10.0, 'TXI': 2.0,'RXV': 2.0, 'IP': 0.0, 'Rho': 82938.04605477054}, {'TXA': 20.0, 'TXB': 40.0, 'RXM': 60.0, 'RXN': 80.0, 'X': 50.0, 'Z': 20.0, 'n': 1.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 376.99111843077515}, {'TXA': 20.0, 'TXB': 40.0, 'RXM': 80.0, 'RXN': 100.0, 'X': 60.0, 'Z': 30.0, 'n': 2.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 1507.9644737231006}, {'TXA': 20.0, 'TXB': 40.0, 'RXM': 100.0, 'RXN': 120.0, 'X': 70.0, 'Z': 40.0, 'n': 3.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 3769.9111843077517}, {'TXA': 20.0, 'TXB': 40.0, 'RXM': 120.0, 'RXN': 140.0, 'X': 80.0, 'Z': 50.0, 'n': 4.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 7539.822368615503}, {'TXA': 20.0, 'TXB': 40.0, 'RXM': 140.0, 'RXN': 160.0, 'X': 90.0, 'Z': 60.0, 'n': 5.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 13194.689145077129}, {'TXA': 20.0, 'TXB': 40.0, 'RXM': 160.0, 'RXN': 180.0, 'X': 100.0, 'Z': 70.0, 'n': 6.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 21111.50263212341},{'TXA': 20.0, 'TXB': 40.0, 'RXM': 180.0, 'RXN': 200.0, 'X': 110.0, 'Z': 80.0, 'n': 7.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 31667.253948185116}, {'TXA': 20.0, 'TXB': 40.0, 'RXM': 200.0, 'RXN': 220.0, 'X': 120.0, 'Z': 90.0, 'n': 8.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 45238.93421169302}, {'TXA': 20.0, 'TXB': 40.0, 'RXM': 220.0, 'RXN': 240.0, 'X': 130.0, 'Z': 100.0, 'n': 9.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 62203.534541077905}, {'TXA': 20.0, 'TXB': 40.0, 'RXM': 240.0, 'RXN': 260.0, 'X': 140.0, 'Z': 110.0, 'n': 10.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 82938.04605477054}, {'TXA': 40.0, 'TXB': 60.0, 'RXM': 80.0, 'RXN': 100.0, 'X': 70.0, 'Z': 20.0, 'n': 1.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 376.99111843077515},{'TXA': 40.0, 'TXB': 60.0, 'RXM': 100.0, 'RXN': 120.0, 'X': 80.0, 'Z': 30.0, 'n': 2.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 1507.9644737231006}, {'TXA': 40.0, 'TXB': 60.0, 'RXM': 120.0, 'RXN': 140.0, 'X': 90.0, 'Z': 40.0, 'n': 3.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 3769.9111843077517},{'TXA': 40.0, 'TXB': 60.0, 'RXM': 140.0, 'RXN': 160.0, 'X': 100.0, 'Z': 50.0, 'n': 4.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 7539.822368615503},{'TXA': 40.0, 'TXB': 60.0, 'RXM': 160.0, 'RXN': 180.0, 'X': 110.0, 'Z': 60.0, 'n': 5.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 13194.689145077129},{'TXA': 40.0, 'TXB': 60.0, 'RXM': 180.0, 'RXN': 200.0, 'X': 120.0, 'Z': 70.0, 'n': 6.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 21111.50263212341},{'TXA': 40.0, 'TXB': 60.0, 'RXM': 200.0, 'RXN': 220.0, 'X': 130.0, 'Z': 80.0, 'n': 7.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 31667.253948185116}]";
////        String IPValues = "[{'TXA': 0.0, 'TXB': 20.0, 'RXM': 40.0, 'RXN': 60.0, 'X': 30.0, 'Z': 20.0, 'n': 1.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 376.99111843077515},{'TXA': 0.0, 'TXB': 20.0, 'RXM': 60.0, 'RXN': 80.0, 'X': 40.0, 'Z': 30.0, 'n': 2.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 1507.9644737231006}, {'TXA': 0.0, 'TXB': 20.0, 'RXM': 80.0, 'RXN': 100.0, 'X': 50.0, 'Z': 40.0, 'n': 3.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 3769.9111843077517}, {'TXA': 0.0, 'TXB': 20.0, 'RXM': 100.0, 'RXN': 120.0, 'X': 60.0, 'Z': 50.0, 'n': 4.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 7539.822368615503}, {'TXA': 0.0, 'TXB': 20.0, 'RXM': 120.0, 'RXN': 140.0, 'X': 70.0, 'Z': 60.0, 'n': 5.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 13194.689145077129},  {'TXA': 0.0, 'TXB': 20.0, 'RXM': 140.0, 'RXN': 160.0, 'X': 80.0, 'Z': 70.0, 'n': 6.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 21111.50263212341}]";
////        JSONArray jsonArray = new JSONArray(IPValues);
////        pyobj = py.getModule("ERT_Plot");
////        new MyThread().start();
//    }
//
//    class MyThread extends Thread {
//        @Override
//        public void run() {
//            String IPValues = "[{'TXA': 0.0, 'TXB': 20.0, 'RXM': 40.0, 'RXN': 60.0, 'X': 30.0, 'Z': 20.0, 'n': 1.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 376.99111843077515},{'TXA': 0.0, 'TXB': 20.0, 'RXM': 60.0, 'RXN': 80.0, 'X': 40.0, 'Z': 30.0, 'n': 2.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 1507.9644737231006}, {'TXA': 0.0, 'TXB': 20.0, 'RXM': 80.0, 'RXN': 100.0, 'X': 50.0, 'Z': 40.0, 'n': 3.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 3769.9111843077517}, {'TXA': 0.0, 'TXB': 20.0, 'RXM': 100.0, 'RXN': 120.0, 'X': 60.0, 'Z': 50.0, 'n': 4.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 7539.822368615503}, {'TXA': 0.0, 'TXB': 20.0, 'RXM': 120.0, 'RXN': 140.0, 'X': 70.0, 'Z': 60.0, 'n': 5.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 13194.689145077129},  {'TXA': 0.0, 'TXB': 20.0, 'RXM': 140.0, 'RXN': 160.0, 'X': 80.0, 'Z': 70.0, 'n': 6.0, 'TXI': 2.0, 'RXV': 2.0, 'IP': 0.0, 'Rho': 21111.50263212341}]";
//            JSONArray jsonArray = null;
//            try {
//                jsonArray = new JSONArray(IPValues);
//                for (int i = 0; i < jsonArray.length(); i++) {
//                    byte[] bytesData = new byte[jsonArray.length()];
//                    try {
//                        bytesData = pyobj.callAttr("ERTPlot", jsonArray.get(i).toString()).toJava(byte[].class);
//                        //发送消息给mHander
//
//                        Message msg = new Message();
//                        msg.what = MSG_SUCCESS;
//                        msg.obj = bytesData;
//                        //msg.arg1 = 111;  可以设置arg1、arg2、obj等参数，传递这些数据
//                        //msg.arg2 = 222; msg.obj = obj;
//                        mHandler.sendMessage(msg);
//                        try { //让线程睡眠3s。
//                            Thread.sleep(10);
//                        } catch (InterruptedException e) {
//                            e.printStackTrace();
//                        }
//                    } catch (JSONException e) {
//                        throw new RuntimeException(e);
//                    }
//                }
//            } catch (JSONException ex) {
//                throw new RuntimeException(ex);
//            }
//
//        }
//    }
//
//    /**
//     * 对象转数组
//     *
//     * @param obj
//     * @return
//     */
//    public byte[] toByteArray(Object obj) {
//        byte[] bytes = null;
//        ByteArrayOutputStream bos = new ByteArrayOutputStream();
//        try {
//            ObjectOutputStream oos = new ObjectOutputStream(bos);
//            oos.writeObject(obj);
//            oos.flush();
//            bytes = bos.toByteArray();
//            System.out.println(bytes.toString());
//            oos.close();
//            bos.close();
//        } catch (IOException ex) {
//            ex.printStackTrace();
//        }
//        return bytes;
//    }
//
//    @Override
//    public void run() {
//
//    }
//}
